// Created by Fwbtz on 2025/11/6.
#ifndef PROJECT_01_HEAD_H
#define PROJECT_01_HEAD_H
#include<stdio.h>
#include "string.h"
#include "sqlite3.h"
#include "windows.h"
//清缓冲区专用函数声明
int hcq(int a);
//创建连接数据库手柄db
extern  sqlite3 * db;
//打开数据库 和 关闭数据库函数声明
void open_db();
void close_db();
//一键调用建表函数声明
void create_ALL();
//--------------------------------------建表声明
int create_payment();
int create_rep();
void create_db();
//创建投诉表
int create_table_comp();
int create_table_park();
//创建楼栋管理表函数声明
void create_floor();
//创建住户表函数声明
void create_resident();
//创建房屋表函数声明
void create_house();
//---------------------------------------建表声明

//-------------------------------------结构体声明
//帐号密码结构体
typedef struct{
    char account[50];
    char password[50];
}users;
//缴费表的结构体
typedef struct {
    int pay_id;
    int person_id;
    float price;
    char ynpay[20];
}Payment;
//报修表结构体
typedef struct {
    int repair_id;
    int person_id;//住户号
    char reason_repair[256];
    char ynrepair[10];
}Repair;
//车位表的结构体
typedef struct{
    int person_id;//业主id
    char park_number[30];//车位编号
    char park_type[20];//车位类型
    char park_location[20];//车位位置
}park;
//投诉表的结构体
typedef struct{
    int person_id;//住户id
    char complaint_content[20];//投诉内容
    char reply[20];//处理回复
}complaint;
//建表
int create_table_park();
//插入车位表
int insert_park(park * p);
//修改车位表
int update_park(const char *old_park_number, int choice,park * p);
//删除车位表
int delete_park(char * park_number);
//查询车位表
int query_park(char * park_number);
//关联查询住户
int query_park_person(char * park_number);
//创建投诉表
int create_table_comp();
//插入投诉表
int insert_comp(complaint * c);
//修改投诉表
int update_comp(int old_person_id,int choice,complaint * c);
//删除投诉表
int delete_comp(char *comp_con);
//查询投诉表
int query_comp(const char *reply);
//关联查询住户
int query_comp_person(const char *reply);
void main_park();
void main_comp();
//住户表的结构体
typedef struct {
    //人员编号
    int person_id;
    //姓名
    char name[50];
    //电话号
    char phone[50];
    //身份证号
    char id_card[50];
    //入住日期
    char time[50];
}resident;
//楼栋表结构体
typedef struct {
    //楼栋编号
    int floor_id;
    //楼栋名称
    char floor_name[50];
    //楼层数
    int tier_count;
    //建立日期
    char time[50];
}floor;
typedef struct{
    int house_id;//序号
    char floor_name[50];//楼栋名称
    int person_id;//住户编号
    char house_num[50];//房间号
    char house_type[50];//房间类型
    char time[50];//入住时间
}house;
//-------------------------------------结构体声明

//--------------**********************************基础功能函数声明--------
//报修功能函数声明
void baoxiu_main();
int user(char * account,char * password);
//缴费功能
void payment_main();
//登录用的2个函数
void login();
void login_2();
//注册帐号
int insert_db(users a);
int select_db(users *a);

//人员管理功能主要调用函数声明
void resident_main();
//添加住户信息函数声明
int insert_resident(resident a);
//查询住户信息函数声明
void select_resident(char * name);
//删除住户信息函数声明
int delete_resident(char * id_card);
//更新住户信息函数声明
int update_resident(char *id_card);
void update_resident2(char *id_card);
int update_resident3(char *id_card,char * new,char * head);
//楼栋功能主要函数函数声明
void floor_main();
//添加楼栋信息函数声明
int insert_floor(floor a);
//查询楼栋信息函数声明
void select_floor(char * floor_name);
//删除楼栋函数声明
int delete_floor(char * floor_name);
//判断楼顶是否存在啊
int judge_floor(char *floor_name);
//更新楼栋信息
void update_floor(char *floor_name);
int update_floor2(char *floor_name,char * new,char * head);
int update_floor3(char *floor_name,int new,char * head);
//房屋功能函数声明
void house_main();
//插入房屋信息功能函数声明
int insert_house(house A);
//查询房屋信息函数声明
void select_house(house A);
//删除房屋函数声明
int delete_house(char * house_num);
//判断房间存在否
int judge_house(char *house_num);
//更改房间号二级导航函数声明
void update_house(char *house_num);
//更改房屋信息值为text类型处理函数声明
int update_house2(char *house_num,char * new,char * head);
//更改房屋信息值为int类型处理函数声明
int update_house3(char *house_num,int new,char * head);
//--------------**********************************基础功能函数声明--------
#endif //PROJECT_01_HEAD_H
